using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace Rocket
{

    class RocketMove : Program
    {
        int[] PozArr = new int[2];

        //Обрабатывается движение 
        public int[] Move(int left, int top)
        {
            Thread Shot = new Thread(Lazer); //Создаем новый объект потока для обработки выстрелов и попаданий 
            string Ghost = " ";
            string GhostAura = "     ";
            ConsoleKeyInfo key;
            int lleft;
            key = Console.ReadKey(true);
            switch (key.Key)
            {
                case ConsoleKey.A:
                    lleft = left;
                    Console.SetCursorPosition(lleft + 4, top);
                    Console.WriteLine(Ghost);
                    left--;

                    break;
                case ConsoleKey.D:

                    Console.SetCursorPosition(left, top);
                    Console.WriteLine(Ghost);

                    left++;
                    break;
                case ConsoleKey.W:
                    Console.SetCursorPosition(left, top);
                    Console.WriteLine(GhostAura);
                    top--;
                    break;
                case ConsoleKey.S:
                    Console.SetCursorPosition(left, top);
                    Console.WriteLine(GhostAura);
                    top++;
                    break;
                case ConsoleKey.F:
                    Shot.Start();
                    break;
            }

            //Чтоб не выходить за пределы поля
            if (left > 75) { left = 75; }
            if (left < 0) { left = 0; }
            //Чтоб не выходить за пределы поля
            if (top > 15) { top = 15; }
            if (top < 0) { top = 0; }

            //Отслыаем массив 
            //Кривовато вышло :с


            PozArr[0] = top;
            PozArr[1] = left;
            return PozArr;

        }
        void Lazer()
        {

            string lazer = "--";
            string LazerGhost = "   ";
            string LazerDick = " ";
            int iter = 0;
            int leftz = PozArr[1]+5;
            int topz = PozArr[0];
            int leftzz, topzz;
            int DickCord = 0;
            while (leftz < 79)
            {
                if (iter > 2)
                {
                    leftzz = leftz;
                    topzz = topz;
                    Console.SetCursorPosition(leftzz-3, topzz);
                    Console.WriteLine(LazerGhost);
                }
                DickCord = leftz+2;
                for (int i=DickCord;i <79;i++) {
                    Console.SetCursorPosition(i, topz);
                    Console.WriteLine(LazerDick);
                }
                Console.SetCursorPosition(leftz, topz);
                Console.WriteLine(lazer);
                
                iter++;
                leftz++;
                Thread.Sleep(10);
            }
            
        }
    }
}
